package com.treetao.union.db.service;

import com.treetao.union.db.model.MallCouponRecord;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 * 优惠券领取使用记录 服务类
 * </p>
 *
 * @author Dev.M
 * @since 2020-05-22
 */
public interface MallCouponRecordService extends IService<MallCouponRecord> {
	/**
	 * 领取过的所有优惠券，包含已使用的，未使用的，已过期的
	 * @param userId
	 * @return
	 */
	List<MallCouponRecord> getCouponRecord(Long userId);
	
	/**
	 * 已领取，未使用的
	 * @param userId
	 * @param maxMan 最大满金额
	 * @return
	 */
	List<MallCouponRecord> getAvaliableCouponRecord(Long userId,Double maxMan);
	
	/**
	 * 已领取，已使用的
	 * @param userId
	 * @return
	 */
	List<MallCouponRecord> getUsedCouponRecord(Long userId);
	
	/**
	 * 已领取，已过期的
	 * @param userId
	 * @return
	 */
	List<MallCouponRecord> getOverdateCouponRecord(Long userId);
	
	/**
	 * 获取我的指定的优惠券
	 * @param userId
	 * @param couponId
	 * @return
	 */
	MallCouponRecord getMyCoupon(Long userId,Long couponId);
	
	/**
	 * 是否已领取过优惠券
	 * @param userId
	 * @param couponId
	 * @return
	 */
	boolean isReceivedCoupon(Long userId,Long couponId);
	
	/**
	 * 设置优惠券为已使用
	 * @param userId
	 * @param couponId
	 * @return
	 */
	boolean setCouponUsed(Long userId,Long couponId);
	
	/**
	 * 该券已被领取了多少张
	 * @param couponId
	 * @return
	 */
	int getReceivedNumt(Long couponId);
	
	/**
	 * 已使用了多少张
	 * @param couponId
	 * @return
	 */
	int getUsedNum(Long couponId);
	
	/**
	 * 过期未使用多少张
	 * @param couponId
	 * @return
	 */
	int getOverdatedNum(Long couponId);
}
